﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using DevComponents.DotNetBar;

namespace Quan_Ly_Dai_Ly
{
    public partial class ThongTinDaiLy : Office2007Form
    {
        
        DataTable dt;
        int RowIndex;

        public ThongTinDaiLy(DataTable dTable, int rIndex)
        {
            InitializeComponent();
            dt = dTable;
            RowIndex = rIndex;
        }

        private void ThongTinDaiLy_Activated(object sender, EventArgs e)
        {
            bt_DongY.Enabled = false;
            DataTable dt_Loai = new DataTable();
            DataTable dt_Quan = new DataTable();
            try
            {
                MainForm.Connect.Open();
                SqlDataAdapter da_Loai = new SqlDataAdapter("select * from LOAIDAILY order by CAST(TenLoaiDaiLy as nvarchar(200)) asc", MainForm.Connect);
                da_Loai.Fill(dt_Loai);
                cb_Loai.DataSource = dt_Loai;
                cb_Loai.DisplayMember = "TenLoaiDaiLy";
                cb_Loai.ValueMember = "MaLoaiDaiLy";
                SqlDataAdapter da_Quan = new SqlDataAdapter("select * from QUAN order by CAST(TenQuan as nvarchar(200)) asc", MainForm.Connect);
                da_Quan.Fill(dt_Quan);
                MainForm.Connect.Close();
                cb_Quan.DataSource = dt_Quan;
                cb_Quan.DisplayMember = "TenQuan";
                cb_Quan.ValueMember = "MaQuan";
            }
            catch (SqlException sqlEx)
            {
                MainForm.Connect.Close();
                MessageBoxEx.Show("Lỗi kết nối cơ sở dữ liệu!\n" + sqlEx.Message, "Thông Báo");
            }

            tb_Ten.Text = dt.Rows[RowIndex]["DaiLy"].ToString();
            cb_Loai.Text = dt.Rows[RowIndex]["Loai"].ToString();
            tb_DiaChi.Text = dt.Rows[RowIndex]["DiaChi"].ToString();
            cb_Quan.Text = dt.Rows[RowIndex]["Quan"].ToString();
            tb_SoDT.Text = dt.Rows[RowIndex]["DienThoai"].ToString();
            tb_Email.Text = dt.Rows[RowIndex]["Email"].ToString();
            tb_NgayTN.Text = DateTime.Parse(dt.Rows[RowIndex]["NgayTiepNhan"].ToString()).ToString("dd/MM/yyyy");
            string t = dt.Rows[RowIndex]["TienNo"].ToString();
            tb_TienNo.Text = t.Substring(0, t.Length - 5);
        }

        private void buttonX3_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void tb_SoDT_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
                e.Handled = true;
        }

        private void bt_DongY_Click(object sender, EventArgs e)
        {
            int result = MainForm.ExecProcedure("sp_SuaThongTinDaiLy",
                                new string[] { "@MaDaiLy", "@TenDaiLy", "@MaLoaiDaiLy", "@MaQuan", "@DienThoai", "@DiaChi", "@Email"},
                                new object[] { dt.Rows[RowIndex]["MaDaiLy"], tb_Ten.Text, cb_Loai.SelectedValue, cb_Quan.SelectedValue, tb_SoDT.Text, tb_DiaChi.Text, tb_Email.Text });
            if (result == 1)
                MessageBoxEx.Show("Thay đổi thông tin đại lý không thành công.\nĐại lý này đã có trong cơ sở dữ liệu.", "Thông Báo");
            else
                if (result == 2)
                    MessageBoxEx.Show("Thay đổi thông tin đại lý không thành công.\nSố đại lý trong quận này vượt quá số đại lý tối đa của quận.", "Thông Báo");
                else
                    if (result == 3)
                        MessageBoxEx.Show("Thay đổi thông tin đại lý không thành công.\nĐịa chỉ email sai định dạng.", "Thông Báo");
                    else
                        if (result == 0)
                        {
                            MessageBoxEx.Show("Thay đổi thông tin đại lý thành công.", "Thông Báo");
                            this.Close();
                        }
        }

        private void tb_Ten_TextChanged(object sender, EventArgs e)
        {
            if (tb_Ten.Text == "" || tb_DiaChi.Text == "")
                bt_DongY.Enabled = false;
            else
                bt_DongY.Enabled = true;
        }

        private void tb_DiaChi_TextChanged(object sender, EventArgs e)
        {
            if (tb_Ten.Text == "" || tb_DiaChi.Text == "")
                bt_DongY.Enabled = false;
            else
                bt_DongY.Enabled = true;
        }

        private void buttonX1_Click(object sender, EventArgs e)
        {
            string tenDL = dt.Rows[RowIndex]["DaiLy"].ToString();
            DialogResult result = MessageBox.Show("Chắn chắn xóa?!!!", "Cảnh Báo!", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly, false);
            try
            {
                if (result == DialogResult.Yes)
                {
                    SQLHelper.ExecuteNonQuery("delete DAILY where TenDaiLy = '" + tenDL + "'");
                    MessageBox.Show("Xóa thành công!", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Close();
                }
            }
            catch
            {
                MessageBox.Show("Xóa thất bại!", "Lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

    }

    //////////////////////////////////////////////////////

    public class SQLHelper
    {
        //Chuỗi kết nối
        private static String _connectionString = @"Data Source=(local);Initial Catalog=QLDL;Integrated Security=True";
        //ExecuteQuery : Select
        public static DataTable ExecuteQuery(String sql)
        {
            DataTable dt = new DataTable();
            SqlConnection connect = new SqlConnection(_connectionString);
            connect.Open();
            SqlCommand command = connect.CreateCommand();
            command.CommandText = sql;
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = command;
            adapter.Fill(dt);
            connect.Close();
            return dt;
        }
        //ExecuteNonQuery:
        public static bool ExecuteNonQuery(String sql)
        {
            bool kq;
            SqlConnection connect = new SqlConnection(_connectionString);
            connect.Open();
            SqlCommand command = connect.CreateCommand();
            command.CommandText = sql;
            int n = command.ExecuteNonQuery();
            if (n > 0)
            {
                kq = true;
            }
            else
            {
                kq = false;
            }
            connect.Close();
            return kq;
        }

    }

  
}
